package com.zhoux.api.io.raf;

import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Arrays;
import java.util.Scanner;

/**
 * 用户注册
 * 程序启动后要求用户输入用户名,密码,昵称和年龄.除了年龄为int值之外,其余都是字符串.
 * 将用户信息写入文件user.dat中
 *
 * 格式设计
 * 每条记录占用固定的100字节.其中用户名,密码,昵称各占32字节.年龄占4字节.
 */
public class RegDemo {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        System.out.println("欢迎注册");
        System.out.println("请输入用户名");
        String username = scanner.nextLine();
        System.out.println("请输入密码");
        String password = scanner.nextLine();
        System.out.println("请输入昵称");
        String nickname = scanner.nextLine();
        System.out.println("请输入年龄");
        int age = scanner.nextInt();

        RandomAccessFile raf = new RandomAccessFile(".\\src\\main\\java\\com\\zhoux\\file\\user.dat","rw");
        //先将指针移动到文件末尾以便追加记录
        raf.seek(raf.length());

        //写入用户名
        byte[] data = username.getBytes("UTF-8");
        //将数组扩容到32字节
        data = Arrays.copyOf(data,32);
        raf.write(data);

        //写入密码
        data = password.getBytes("UTF-8");
        data = Arrays.copyOf(data,32);
        raf.write(data);

        //写入昵称
        data = nickname.getBytes("UTF-8");
        data = Arrays.copyOf(data,32);
        raf.write(data);

        //写入年龄
        raf.writeInt(age);
        System.out.println("注册完毕!");
        raf.close();
    }
}